package oa.hleast.xswl.service.place;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import oa.hleast.xswl.pojo.domain.place.CmsPlaceRecommend;
import oa.hleast.xswl.pojo.dto.RecommendTypeDto;
import oa.hleast.xswl.pojo.form.place.CmsPlaceRecommendForm;
import oa.hleast.xswl.pojo.vo.place.CmsPlaceRecommendVo;
import oa.hleast.xswl.pojo.vo.place.HomePageRecommendVo;
import oa.hleast.xswl.pojo.vo.place.SelectPlaceRecommendVo;

import java.util.List;

/**
 * 信息关联表(CmsPlaceRecommend)表服务接口
 *
 * @author 302
 * @since 2021-03-23 15:51:50
 */
public interface IPlaceRecommendService extends IService<CmsPlaceRecommend> {


    /**
     * 获取所有的推荐类型-缓存
     *
     * @return
     */
    List<HomePageRecommendVo> findRecommendTypeList();

    /**
     * 新增数据
     *
     * @param placeRecommendForm 参数表单
     * @return 是否成功
     */
    Boolean add(CmsPlaceRecommendForm placeRecommendForm);

    /**
     * 修改数据
     *
     * @param placeRecommendForm 参数表单
     * @return 是否成功
     */
    Boolean update(CmsPlaceRecommendForm placeRecommendForm);

    /**
     * 通过主键批量删除数据
     *
     * @param ids 主键list
     * @return 是否成功
     */
    Boolean deleteByIds(List<String> ids);

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    CmsPlaceRecommendVo detail(Long id);

    /**
     * 分页查询
     *
     * @return 分页数据
     */
    Page<CmsPlaceRecommendVo> pageList(Integer page, Integer limit, String title);

    List<RecommendTypeDto> findRecommendType();

    List<SelectPlaceRecommendVo> findRecommendSelectType();
}